Implementing a contact center using open standards and non-proprietary components

ABSTRACT

The present invention discloses an open contact center formed from multiple contact center components that conform to open standards and that intercommunicate utilizing open standards. The open contact center can provide automated interactive communications with callers, can provide queue management for callers waiting to communicate with live agents, can provide skills based routing for assigning live agents to callers based upon skills of the live agents and skills needed by the callers, and can provide tooling for provisioning and monitoring the live agents. In one configuration, the contact center components can execute within a middleware solution, such as WEBSPHERE, that has IP Multimedia Subsystem capability. Additionally, the contact center components can be implemented as service oriented architecture (SOA) components that communicate over an enterprise service bus (ESB).

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.11/680,304, filed Feb. 28, 2007 (pending), which is incorporated hereinin its entirety.

BACKGROUND

The present invention relates to the field of contact centers.

A contact center is a functional area used by one or more organizationsto handle inbound/outbound communications with customers. A contactcenter can facilitate real-time communications that use differentinteractive modalities, such as voice (e.g., telephone interactions),text (e.g., chat modalities), video, and Web (e.g., co-browsing).Contact centers utilize automated response components that automaticallyhandle routine customer functions, such as providing account balancesand the like. Automated response components can also determine subjectmatter of a customer communication, can ascertain a currently workinghuman contact center agent having requisite skills to handle thecustomer's needs, and can automatically and dynamically route thecustomer to that human agent for an interactive communication.

Conventionally, contact centers are implemented using proprietaryinfrastructure resources (e.g., hardware and software) from vendors. Forexample, a typical contact center has a dedicated switch, hasspecialized telephones for agents, has a hardwired computer telephoneinterface (CTI) between switch and computer equipment, and utilizesproprietary protocols to link infrastructure components. Theseproprietary solutions have normal proprietary advantages anddisadvantages.

One advantage to vendors is that customers are basically locked into aprovided solution due to a cost for changing a complete infrastructurefrom one vendor to a competitor, since vendor solutions are currentlyincompatible with each other. One disadvantage is that proprietarysolutions are often unable to rapidly integrate technologicalinnovations or at least incur substantial cost when adding functionalitythat takes advantage of new innovations. In a contact center context,new innovations can include software/firmware improvements in VoIP(Voice over Internet Protocol) technologies, media streaming, speechprocessing, and the like. Hardware innovations, such as feature enhancedtelephone and computing terminals, can also be hard for proprietarysolutions to utilize due to proprietary communication protocols andhardware links. Solutions which are based upon open standards are ableto quickly and cheaply take advantage of new innovations. Further,maintaining skill currency of employees is much less expensive for opensolutions than for proprietary solutions. From a customer perspective,current contact center providers are often slow to respond to customerdesired improvements (due to proprietary implementation quirks), can bevery expensive, and can lack a desired degree of flexibility.

The following example, shown in FIG. 1 (Prior Art), illustrates aconventional implementation of a contact center. FIG. 1 (Prior Art)shows a system 100 where a contact node 105 accesses a contact centerimplemented using a proprietary architecture 160. The contact node 105generally consists of a customer using a telephone to dial a telephonenumber for the contact center. Communications occur over network 150,which can be a Public Switched Telephone Network (PSTN), and arereceived by a pubic branch exchange (PBX) 110. The PBX 110 routesincoming calls to contact center system implemented using proprietaryarchitecture 160.

Various components can be linked to one another within the proprietaryarchitecture 160 including a Voice Response Unit (VRU) server 120, acomputer and telephony integration server (CTI) 126, a workflow manager128, and an operations center 140. The VRU 120 provides automated voiceinteractions for callers, which can be provided by speech enabledapplications 122 executing on a linked application server 124. The VRUserver 120 can be a proprietary solution, which can require speechenabled applications 122 be written in a proprietary language and/or ina proprietary manner.

The CTI server 126 can provide access to enterprise system 127information, and can be responsible for populating data fields basedupon customer input. CTI server 126 can also distribute inbound calls.When calls are routed, the CTI server 126 can ensure that an agent 145is presented with information, which the caller provided to the VRUserver 120. Two key factors in allocating an agent to a caller areskills based routing and queuing. In skills based routing, the agent 145assigned to a caller needs to have the requisite skills to resolve thecustomer's problems. In queuing, a caller's wait time should beminimized and incoming calls should be balanced between available agents145 with appropriate skills.

The workflow manager 128 can track agent availability, can monitoragent/caller interactions, and can acquire and manage metrics for theinteractions. The operations center 140, which is often remotely locatedfrom a data center, can include a set of agent nodes 144 linked to acenter server 142 through a local network 154. Each agent node 144 caninclude a work station for an agent 145 as well as hardware 146 andsoftware 148. The hardware 146 can be propriety hardware thatcommunicates with the center server 142 using proprietary protocols. Thedesktop software 148 can also be proprietary, which is designed for aspecific vendor. The proprietary nature of the hardware 146 and software148 generally prevents agents 145 from working off-site, such as fromhome.

BRIEF SUMMARY

The present invention can be implemented in accordance with numerousaspects consistent with the material presented herein. For example, oneaspect of the present invention can include an open contact centerformed from multiple contact center components that conform to openstandards and that intercommunicate utilizing open standards. The opencontact center can provide automated interactive communications withcallers, can provide queue management for callers waiting to communicatewith live agents, can provide skills based routing for assigning liveagents to callers based upon skills of the live agents and skills neededby the callers, and can provide tooling for provisioning and monitoringthe live agents. In one configuration, the contact center components canexecute within a middleware solution, such as WEBSPHERE, that has IPMultimedia Subsystem capability. Additionally, the contact centercomponents can be implemented as service oriented architecture (SOA)components that communicate over an enterprise service bus (ESB).

Another aspect of the present invention can include a contact centerthat includes an agent desktop, a portal server, an application server,and a presence server. The agent desktop can include an HTTP browser anda SIP phone each based upon open standards. The agent desktop can permitan agent to handle call center communications from any terminal orlocation, inside or outside of an operations center. The portal servercan provide an agent portal through which an agent utilizing the agentdesktop communicates. The agent portal can include multiple agentportlets within which contact center information is presented. Theapplication server can execute contact center applications that areconfigured to receive input for the contact center applications from theagent portlets and to present contact center output through the agentportlets. The presence server can determine agent availability and canprovide the application server with agent specific information includingIP addresses for an agent's HTTP browser and SIP phone as well as agentexpertise information.

Still another aspect of the present invention can include a call centersystem that includes one or more contact nodes, one or more agent nodes,zero or more supervisor nodes, and a middleware solution. Each node caninclude an HTTP browser and a phone. Each node can communicate with themiddleware solution over a network using standard communicationprotocols. The middleware solution can include contact center componentsthat conform to open standards that intercommunicate utilizing openstandards. Callers can communicate with the contact center componentsvia one of the contact nodes, live agents can communicate with thecontact center components via one of the agent nodes, and supervisorscan communicate with the contact center via one of the supervisor nodes.

It should be noted that various aspects of the invention can beimplemented as a program for controlling computing equipment toimplement the functions described herein, or a program for enablingcomputing equipment to perform processes corresponding to the stepsdisclosed herein. This program may be provided by storing the program ina magnetic disk, an optical disk, a semiconductor memory, or any otherrecording medium. The program can also be provided as a digitallyencoded signal conveyed via a carrier wave. The described program can bea single program or can be implemented as multiple subprograms, each ofwhich interact within a single computing device or interact in adistributed fashion across a network space.

It should also be noted that the methods detailed herein can also bemethods performed at least in part by a service agent and/or a machinemanipulated by a service agent in response to a service request.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 (Prior Art) illustrates a conventional implementation of acontact center.

FIG. 2 is a schematic diagram of a system for implementing a contactcenter based upon open standards in accordance with an embodiment of theinventive arrangements disclosed herein.

FIG. 3 is a schematic diagram showing a series of stages for evolving aproprietary contact center to an open contact center in accordance withan embodiment of the inventive arrangements disclosed herein.

FIG. 4 is a schematic diagram of a standards based contact center froman agent perspective that is implemented using WEBSPHERE enabledcomponents and associated tooling in accordance with an embodiment ofthe inventive arrangements disclosed herein.

FIG. 5 is a schematic diagram of a standards based contact center from acustomer perspective that is implemented using WEBSPHERE enabledcomponents and associated tooling in accordance with an embodiment ofthe inventive arrangements disclosed herein.

DETAILED DESCRIPTION

The present invention implements contact center functionality utilizingstandardized components, which reduces infrastructure costs, addsflexibility, permits interoperability among multiple contact centerprovider solutions, and makes it easier to quickly and efficientlyintegrate new technologies to a contact center. In the invention, openstandards based components for an agent desktop, agent authentication,agent monitoring, agent transfer, application integration, call queuing,collaboration integration, load balancing, reporting, skills basedrouting, supervisor conferencing, and the like can be used. Each ofthese areas can communicate using standard protocols and can beimplemented using standard software and hardware. Further, a set ofplug-ins can be provided to the open contact center to permit contactcenter vendors to add vendor specific content and/or vendor specificcomponents, which can be proprietary. The plug-ins can link third partycomponents written in accordance with open contact center standards tothe contact center infrastructure (e.g. value added services andenhancements to a core infrastructure) as well as permit standards basedcontact center components to interoperate with legacy proprietarycomponents, which eases transition from a legacy system to an open one.

As presented herein, an integrated contact center solution can consistentirely of open standardized components and/or can include anamalgamation of open standardized components and proprietary components.Moreover, the open standardized components can be service orientedarchitecture (SOA) components. Different proprietary components of anintegrated contact center solution can be provided by different vendors,each using vendor-specific proprietary technologies that are accessedvia appropriate plug-ins. Thus, customers are provided with an abilityto choose vendor-specific components without the detriment of beinglocked-in to a single proprietary solution. Further, use of vendorspecific plug-ins permits a graceful upgrade or migration pathway froman existing proprietary solution to the disclosed open solution.

To illustrate, a company having proprietary contact center equipmentfrom a first vendor can acquire assets of a second company havingproprietary contact center equipment from a second vendor.Traditionally, the company would either have to separately staff,operate, and maintain two separate sets of contact center equipment orselect a single vendor, increase capacity as needed, perform costly datamigrations, and discard the non-selected equipment. Customer experienceddisruptions would occur through-out the migration. Using the presentinvention, a base contact center infrastructure can be established usingopen standardized components. Plug-ins can be used to access proprietarycomponents, which can continue to operate. Over time, proprietarycomponents, such as voice processing, load-balancing, scaling, and callrouting components, from each of the vendors can be replaced with openstandardized components. At this time, proprietary (and expensive) agentdesktop components can continue to be used at the different operatingcenters (i.e., the first vendor equipment and second vendor equipmentcan seamlessly interact with the open standardized components), eachaccessed via a vendor-specific plug-in. Accordingly, the expense andcomplications of upgrading vendor specific operations centerhardware/software can be delayed (perhaps indefinitely) until theacquiring company chooses to upgrade operating center equipment.

FIG. 2 is a schematic diagram of a system 200 for implementing a contactcenter based upon open standards in accordance with an embodiment of theinventive arrangements disclosed herein. As used throughout thisapplication, open standards indicate that specifics of communicationprotocols, interfaces with components of the open contact center 210,and the like, are published and available to third party vendors, whocan construct solutions or enhancements to the open contact center 210by conforming to the published standards, such as Extensible MarkupLanguage (XML), service-oriented architecture (SOA), Real-time TransportProtocol (RTP), Media Resource Control Protocol (MRCP), Hyper TextTransfer Protocol (HTTP), Session Initiation Protocol (SIP), and thelike. Open standards are often established by an independent standardsetting body, such as the Internet Engineering Task Force (IETF), WorldWide Web Consortium (W3C), etc., or by a cooperating consortium ofmultiple independent businesses, such as IBM, Sun Microsystems, and thelike. Open standards, as used herein, can exist even though one or morecompanies maintains intellectual property rights to open contact center210 concepts, such as those presented in the instant application.

In system 200, a contact node 202 can connect to the open contact center210 over network 250. The contact node 202 can include a callercommunicating with the center 210 via a telephone or a computer useraccessing the center 210 via a computer interface. The open contactcenter 210 can prompt for information regarding the purpose of thecommunication and assign an agent to handle the communication based uponprompt responses. An assigned agent can be linked to the network 250 andcan communicate from an agent node 204. In one embodiment, during acommunication session, the open contact center 210 can conference asupervisor node 206 (or additional contact node 202 or agent node 204)into a pre-existing session involving contact node 202 and agent node204. Additionally, enterprise information 208 can be accessed by one ormore of the nodes 202-206 during the session and enterprise system 208information can be dynamically updated based upon input from acommunication node 202-206.

The contact node 202, agent node 204, and/or the supervisor node 206 caneach include one or more communication devices linked to the network 250from which input can be accepted and/or output presented.Hardware/software of each node 202-206 can adhere to open standards,such HTTP for Web based communications, SIP for multimedia and telephonybased communications, internet relay chat (IRC) protocol, and the like.Communication devices for the nodes 202-206 can include a phone, acomputer, a two-way radio, a text messaging device, and othercommunication devices. Interaction modalities used by each node 202-206during a communication session involving the contact center 210 caninclude voice, text, visual, video, co-browsing, and/or otherinteractive modalities.

The open contact center 210 can include a media gateway 212, a modalityserver 214, an application server 216, plug-ins 218, and a set of openstandardized contact center components 220. The media gateway 212 actsas a translation unit between disparate telecommunications networks suchas PSTN, mobile telephony networks, data networks, Next GenerationNetworks (NGN), and the like. In one embodiment, the media gateway 212can be a gateway that permits external communications to interact withcomponents of the center 210, which can each conform to IP MultimediaSubsystem (IMS) standards.

The modality server 214 can be used to match modalities for differentnodes 202-206 involved in a communication session, so that when a calleris communicating with a chat interface or a voice interface, an agent towhom the caller is transferred communicates using an equivalentinterface. In one embodiment, the modality server 214 can convertinput/output formats in real-time so that different modalities can beused by different interacting communicators. Further, in one embodiment,the modality server 214 can be part of composite services architecturewithin which session state information is maintained irrespective of amodality through which communicators interact.

Application server 216 can be a server that utilizes modular componentsof a standardized runtime platform. The application server 216 canrepresent a middleware server of a multi-tier environment. The runtimeplatform can provide functionality for developing distributed,multi-tier, Web-based applications. The runtime platform can include acollection of related technology specifications that describe requiredapplication program interfaces (APIs) and policies for compliance.

In one embodiment, the runtime platform can be a JAVA 2 PLATFORMENTERPRISE EDITION (J2EE) software platform. Accordingly, theapplication server 216 can be a J2EE compliant application server, suchas a WEBSPHERE application server from International Business MachinesCorporation (IBM) of Armonk, N.Y., a BEA WEBLOGIC application serverfrom BEA Systems, Inc. of San Jose, Calif., a JBOSS application serverfrom JBoss, Inc. of Atlanta, Ga., a JOnAS application server from theObjectWeb Consortium, and the like. The runtime platform is not to beconstrued as limited in this regard and other software platforms, suchas the .NET software platform, are contemplated herein.

A set of plug-ins 218 can be constructed for permitting third parties toadd value to the open contact center 210 using third party components219, each of which is specifically designed for the standardsestablished for the open contact center 210. The plug-ins 218 caninterface with third party software components 219. Thus, a third partysoftware provider can develop a supervisor notification procedure (e.g.,one example of a third party component 219), which can be used by theopen contact center 210 via an appropriate plug-in 218. The third partysoftware 219 can execute remotely from the center 218 or can be deployedand installed within the open contact center 210 and execute locally(e.g., such as a software component deployed and executing within theapplication server 216).

A different set of plug-ins 218 can be vendor-specific plug-ins designedto interface with proprietary contact center 240 components, which donot inherently conform to the open standards of the contact center 210.That is, plug-ins 218 can be used to bridge from the open contact center210 to proprietary contact center 240 software/hardware. Differentplug-ins 218 can be designed for different components, such as a VoiceResponse Unit (VRU) 242, the Computer and Telephony Integration (CTI)243, the workflow manager 244, and/or operations center 245. Theoperations center 245 can include a set of agent nodes 247 connected toa center server 246 via a network 248, where connections, hardware,software, and/or protocols are proprietary and are specific to aparticular vendor. It should be appreciated that different plug-ins 218for different vendors can be simultaneously utilized.

Instead of accessing contact center software via the plug-ins 218,contact center functionality can be provided by internal standardizedcomponents 220. In one embodiment, each of the standardized componentscan be service oriented architecture (SOA) components. As used herein, aSOA architecture defines structure supporting communications betweenloosely coupled software services to support requirements of businessprocesses and software users. In this context, a service can be definedas a unit of work to be performed on behalf of some computing entity,such as a human user or another program. Resources in a SOA architectureare made available as independent, self-contained services that are ableto be accessed without knowledge of their underlying platformimplementation. Accordingly, SOA contact center components 220 can beeasily integrated with proprietary or third party components accessedvia plug-ins 218. Use of SOA components 220 also makes it easy tointegrate new technologies and to selectively utilize/integrate newservices, even those provided by third party software providers.

The components 220 can include, but are not limited to, an agent desktopcomponent 224, an agent authentication component 225, an agentmonitoring component 226, an agent transfer component 227, anapplication integration component 227, an application integrationcomponent 228, a call queuing component 229, a collaboration integrationcomponent 230, a load balancing component 231, a reporting component232, a skills based routing component 233, and/or a supervisorconferencing component 234. For illustrative purposes, a sampleimplementation for each of the components 220 are provided below, wherethe sample implementation is based upon the WEBSPHERE platform. Itshould be appreciated that the invention is not to be construed aslimited to this platform, but the samples are instead provided toclarify specifics of one concrete embodiment of the invention. Theinvention can, however, be easily adapted for other platforms (e.g., the.NET platform), which are included in the scope of the presentinvention.

The agent desktop component 224 can include a standard Web browser, suchas Internet Explorer, and a phone, such as a SIP based phone. In oneembodiment, a set of standard Web pages can provide agent functions,such as login function, a status function (e.g. “active—in call”,“active—between calls”, “on break”, “not active”, and other values). TheWeb pages can be implemented as portlets on a portal server, which arearranged in an agent view. The agent view can vary, based on agentauthority. For example, a supervisor agent can have a more extensiveview of the call center 210 than other agents, with fewer privileges. Inone configuration, the portal server can be provided by the WEBSPHEREPortal Server (PS) or an equivalent solution.

Additionally, the web pages of the agent desktop component 224 caninclude a LOTUS Lightweight Messaging (LLW) client, which uses theBlocks Extensible Exchange Protocol (BEEP) to receive notifications.Using the LLW client, an agent can sign onto the portal via the agentdesktop portlet. Also at login, the agent desktop portlet can call aWEBSPHERE PRESENCE SERVER (WPS) for IBM IMS with a publish/subscribemechanism. The request can send an IP address of the agent's SIP phone,browser, BEEP address, and other information including expertise aboutthis agent and their utilization. This can accomplish a function ofadding the agent to the “routing queue”.

It should be emphasized that use of the LLW client and the BEEP protocolis just one contemplated technique for communicating with the agentdesktop 224 and that the invention is not to be limited in this regard.That is, any of a variety of other techniques can be substituted thatprovide approximately equivalent function to LWM and BEEP. For example,Asynchronous JavaScript and XML (AJAX) based clients using HTTP canestablish communications with the agent desktop 224 in one contemplatedembodiment.

The agent authentication component 225 can identify an agent and uponsuccessful authentication can provide the agent with access to contactcenter 210 resources. For instance, an agent can login using a user idand password, which is submitted to the contact center using a Webinterface. In one embodiment, the authentication function can beprovided by WEBSPHERE Application Server (WAS) and Portal Server (PS)JAVA security facilities.

The agent monitoring component 226 can permit call center agents to bemonitored for quality assurance or training from virtually any location.In one embodiment, the agent monitoring component 226 can be providedusing the WEBSPHERE Portal Server (WPS) and the reporting component 232.For example, agent interactions can be viewed/analyzed using thereporting component 232 for items such as average call handling time,number of calls handled per hour, etc. One of the supervisor's portletsin their Web browser can contain a view of the call center agents, alongwith access to the agent reporting database, which can include agentspecific statistics. The supervisor portlet (accessible via supervisornode 206) can permit a supervisor to access agent information from anyWeb browser, once the supervisor has been properly authenticated by theagent authentication component 225. In one embodiment, real-timestatistics can be provided by the agent monitoring component 226, whichcan even permit the supervisor to silently conference into/observe areal-time agent/caller interaction. This conferencing may require use offunctions of component 234.

The agent transfer component 227 can transfer a communication from anautomated response system to an agent, who has suitable skills andavailability for handling the communication. In one embodiment,functions of the agent transfer component 227 can be implemented using aSIP Proxy, an agent transfer servlet, a Model Server (MS), a WEBSPHEREPS, and a “Get Agent” composite service. For example, a Voice XML (VXML)application can use a VXML <transfer> tag to transfer a call back to theSIP Proxy server and then onto the selected agent. The SIP Proxy servercan receive the call from the VoIP gateway and can transfer it to anavailable WAS server running WEBSPHERE Voice Enabler (VE). An agenttransfer SIP servlet (SIPlet) can run on the SIP Proxy server. TheSIPlet can receive the SIP transfer from VE and sends a message to theMS, and specifically to the “Get Agent” service.

The Get Agent service can be provided by the middleware solutionprovider or a third party. In one configuration, the Get Agent servicecontext information associated with help within the request, such ashelp for TV repair, etc. “Get Agent” can be a registered compositeservice in the MS. Invocation of “Get Agent” can cause the MS to send amessage to the WEBSPHERE Presence Server (WPS) watchers. The request isto get an agent, based on the expertise required for the HELP context.This can default to a request for an agent in this category that isleast used. The default can be overridden to request a preferred agent(if available) that the caller used in a prior call. An agent IPaddress, whose criteria match that of the request, can be returned bythe WPS to the MS. The listener on the model for the “Get Agent” cansend a message to the BEEP servlet queue for this agent, putting intothat queue a request to take a new call. The Web browser on the agent'sdesktop can receive the BEEP notification via the LOTUS LWM applet. Thevisible page can be updated to reflect an incoming call (e.g. “acceptcall” button flashes). The agent can press the button to accept thecall. Pressing the button to accept can send a message to the MS toindicate that the agent is ready to take the call. The agent's screencan update to a view of the caller's information, including what thecaller has said during this call along with caller profile information.The MS can return the selected agent's IP address for transfer to theProxy server agent transfer SIPlet. The SIPlet can transfer the call tothe agent's desktop SIP phone. At this point, transfer is complete andthe agent is in control of the call.

The application integration component 228 can integrate applicationsinto the open contact center 210, which can be accomplished usingstandard J2EE deployment techniques on the WAS infrastructure.Application integration can include integration of composite services,such as the “Get Agent” service. The WEBSPHERE Portal Server (PS) can beused to deploy portlets for the agent desktops via portlet deploymentfunctions. Deployment of WEBSPHERE Presence Server (WPS) watchers can beperformed using standard J2EE techniques.

The call queuing component 229 can queue incoming calls utilizing acustomizable queuing algorithm. In one embodiment, queuing functions canbe provided by WEBSPHERE Presence Server (WPS) for IBM IMS. Forinstance, at agent login, an agent desktop portlet can call the WPS witha publish/subscribe mechanism. The request can send the IP address ofthe agent's SIP phone, browser, BEEP address, and other informationincluding expertise about this agent and their utilization. The WPS canmaintain queues based on expertise, along with other factors that affectthe agent's position in the queue, such as utilization. The queue can bemanaged by the WPS with business logic tied to a WAS based loadbalancing and watcher function that has policies to process queuedevents based on agent desktop based rules.

The collaboration integration component 230 can integrate differentusers and devices into a call center communication. In one embodiment,the collaboration integration function can be provided by EnterpriseService Bus (ESB) components, SOA components, IBM WORKPLACE, and acomposite services model server. IBM WORKPLACE can be the front end ofcomputing that enables users to aggregate data, applications, businessprocesses and people into a single work environment that the users canaccess from a Web browser, mobile device or server-managed client.WORKPLACE can change how users access the resources they need to dotheir jobs. Moreover, WORKPLACE can combine new and existing IBMproducts and technologies, including WORKPLACE products and solutions,LOTUS NOTES and LOTUS DOMINO, IBM WEBSPHERE PORTAL, and WEBSPHEREEVERYPLACE. WORKPLACE can provision these high-performance, role-basedenvironments for users to combine the productivity gains of the desktopwith the cost advantages of the network.

The load balancing component 231 can balance customer load among variousagents, to minimize time spent waiting in a queue. In one embodiment,the load balancing function can be provided by WEBSPHERE EDGE SERVERLOAD BALANCER (LB) and the WEBSPHERE SIP PROXY SERVER. The LB is can beplaced between HTTP and Media Resource Control Protocol (MRCP) endpointsand the SIP PROXY SERVER can be placed between SIP endpoints. The loadbalancer can route requests to the least loaded, most capable systems ina routing list. Load balancing component 230 can also be capable ofperforming routing based on the content of the request.

The reporting component 232 can be used to generate reports based uponestablished and/or user selectable criteria. In one embodiment, thereporting function can be provided by a WAS PERFORMANCE MONITORINGINTERFACE (PMI), WAS contained JAVA Management Extensions (JMX)infrastructure components, an IMS reporting mechanism, DB2 UNIVERSALDATABASE mechanisms, and reporting agents, which can be provided by athird party.

More specifically, reporting carried out by the reporting component 232can take a variety of avenues. For real-time monitoring, the PMI canprovide a capability to monitor in real-time any component of thecontact center 210. Non real-time instrumentation can be provided usingthe JAVA Management Extensions (JMX) infrastructure components containedin WAS. For instance, using the JMX managed bean (MBean) concept,administrators can manipulate key elements of system 200. Using the openJMX standard and WAS, system administrator programs can monitor JMXMBeans of interest. For the contact center, a reporting agent canmonitor JMX MBeans of interest and update a DB2 UNIVERSAL DATABASE. Forexample, for customer billing records, call completion by automation canbe obtained from a JMX MBean for VE. So a third party agent WAScomponent can be created to query the VE JMX MBeans of interest andupdate a billing DB2 database. Another capability of the reportingcomponent 232 can be in the IMS elements themselves employed by the opencontact center 210. IMS has defined a reporting mechanism which includesCall Detail Records (CDRs) generated by the Charging Collection Function(CCF), or the Event Charging Function (ECF).

The skills based routing component 233 can determine agents to whomcommunications are to be routed based upon agent skills. In oneembodiment, the skills based routing function can be provided by theWEBSPHERE Presence Server (WPS) for IBM IMS. For example, an agentdesktop portlet can call the PS using the publish/subscribe mechanism.The request can send the IP address of an agent's SIP phone, browser,BEEP address, and other information including expertise about this agentand their utilization. Contact center agents can register with the WPS,which causes watchers to be created. Watchers can be created whenever anew expertise is added to the WPS. Watchers can be plug-ins of the WPS.A watcher can watch the expertise of the agents. The watcher can be apiece of code that listens. It listens on an event package (“presentity”XML file). A user can be registered with a PS. This agent notion changesthe algorithm, as watchers watch the expertise, and not the agentitself. This changes the typical logic of the watcher fromconventionally implemented ones. Watchers can be added via a plug-inmechanism to WPS, so third party content can be integrated. A uniquewatcher can be provided for each unique expertise. For example, lookingfor an agent experienced with “TV repair”. A single agent can havemultiple skills or expertise and can therefore be associated withmultiple watchers.

The supervisor conferencing 234 component can be used to conference in asupervisor or a supervisor node 206 to an existing communicationsession. The supervisor node 206 can be added with or without agentand/or communicator knowledge. In one embodiment, the supervisorconferencing function can be provided by WEBSPHERE Portal Server (WPS)which uses composite services Model Server (MS), a conference servlet,and the SIP phone on the agent desktops along with the VE CCXMLconferencing capability.

For example, an agent can monitor any call in the call center based onthe agent's permission level. The user identifier that the agent uses tologin will affect the functions available to the agent. One of thesupervisor's portlets can be a view of the calls that are in-progress inthe contact center. This information can be populated via a query to theMS, and includes a notification mechanism for change. The supervisorconferencing component 234 can permit a supervisor to select anycommunication and to obtain a detailed view of the communication. Thesupervisor can also listen to any call, by clicking on a listen buttonfor the call in progress. The listen button can send a message to VE toconference the supervisor into the call. The supervisor can be “on mute”if desired. The VE can use the CCXML conference support to tie thesupervisor into the call. The VE can send a conference request back tothe originator of the call, which for VE is the SIP Proxy server. There,a conference servlet can send a message to the media gateway 212 toduplex the audio stream to the supervisor's RTP endpoint. Once done, thesupervisor can listen into the selected call.

It should again be emphasized that although component 220 implementationspecifics for one contemplated embodiment have been described using IBMWEBSPHERE middleware, the invention is not so limited. Any middlewaresolution or standards based solution can be used in place of the IBMWEBSPHERE specific components described herein, using adaptations andsoftware techniques commonly performed by software engineers anddevelopers, which do not require undue experimentations or inventiveefforts. That is, from the above, it can be readily realized that opencontrol center 210 implementation specifics can depend highly uponmiddleware that performs the call center functions.

The illustrated implementation shows that traditionally proprietaryfunctionality can be achieved by functionality inherent in manyconventional middleware solutions, such as WEBSHERE. Additionalstandardized components can be integrated to a selected middlewaresolution to provide additional functions. For example, plug-ins 218 canbe provided that permit vendor specific, proprietary contact center 240components to be used, which permit a staged or gradual implementationof system 200 from a pre-existing proprietary solution.

It is expected that present day middleware components will evolve overtime, and implementation specifics for the open contact center 210 willsimilarly evolve. Importantly, the use of standardized components, suchas IMS based components, SOA components, composite services componentsand the like, permit the contact center 210 to quickly integrate andutilize emerging technologies, unlike proprietary contact centers 240 oftoday, which must convert and adapt emerging technologies intoproprietary architectures and protocols, which is time consuming,expensive, and often results in a loss of functionality.

FIG. 3 is a schematic diagram showing a series of stages 300, 320, 340,and 360 for evolving a proprietary contact center to an open contactcenter in accordance with an embodiment of the inventive arrangementsdisclosed herein. Appreciably, the stages shown in FIG. 3 represent justone potential evolution pathway and others are possible. That is, theuse of plug-ins 218 to access legacy or proprietary contact center 240components permit a contact center operator to systematically replaceproprietary components with functionally equivalent components 220 in aprogressive manner while maintaining an operational system.

In stage 300, a pure proprietary contact center system is shown. Stage300 links a caller 302 to a PBX 304 via a PSTN network 303. The PBX 304is linked to a proprietary voice portal (VP) 305 through a T1connection. The VP 305 can use a proprietary voice server 306 to executevoice applications 307, which can include proprietary code and/orextensions. A proprietary communication link can exist between VP 305and a CTI server 308. A further proprietary link can exist between theCTI server 308 and a proprietary work flow manager 309, which is in turnconnected to a proprietary desktop agent 310, which includes one or moreagent nodes.

In stage 320, proprietary applications of stage 300 can be ported to astandard, non-proprietary language, such as VXML. Standardizing thevoice applications 327 can require the proprietary voice server 306 tobe replaced with an open standards voice server 326. The new voiceserver 326 can exchange information with the VP 305 using openstandards, such as Real Time Protocol (RTP) based standards and MediaResource Control Protocol (MRCP) based standards.

In stage 340, proprietary interactive voice response (IVR) components(e.g., VP 305) can be replaced using an open standard component, such asIBM's VOICE ENABLER 343 and WEBSPHERE voice server 346. Voice server 346may have been replaced in step 320, depending on whether theapplications 327 required such a replacement to continue operating. Ifthe proprietary voice server 306 was able to interpret applications 327,its substitution could be delayed until stage 340. Either way, the voiceserver 346 can interpret VXML applications 347 in stage 340.

Initially, WVS 346 can be used with VE 343 for handlingDual-Tone-Multi-Frequency (DTMF) input and pre-recorded audio, which maybe sufficient for porting pre-existing IVR applications 347. Once theexisting applications have been ported, additional speech processingcapabilities can be added to the applications 347, such as automaticspeech recognition (ASR) capabilities, text-to-speech capabilities, andthe like. In one optional embodiment, speaker authentication andverification functions based upon voice identification technologies canbe added using voice server 346.

Additionally, a proxy 342, such as WAS EDGE SERVER LOAD BALANCER or WASSIP PROXY can be used in front of the voice enabler 343. A media gateway341 can be placed between a PBX 348 and the proxy 342. Accordingly,stage 340 can incorporate CCXML for most basic call provisioning (e.g.,DNIS to VXML application). The CCXML applications can reside on a WAStype application server with the VXML applications 347.

Further, a CTI bridge 344 or plug-in can be used to link the VE 343 toproprietary call center components, such as a CTI server. If multipledifferent vendor-specific solutions need to be integrated, differentbridges 344 or plug-ins can be used.

In stage 360, now that open standards based voice aspects have beenintegrated into the contact center, other proprietary components (i.e.,CTI server 308, workflow manager 309, and desktop agent 310) can bereplaced by open standards based components. First proprietary database(not shown) storing contact center information can be replaced with astandard database, such as DB2 UNIVERSAL DATABASE. At this time,database tables can be re-built, data can be migrated, scripts can beported, and the like.

An IMS composite services model server 361 can then be added, whichhandles IMS composite services applications 362, which can replacesingle modality applications 347. Contact nodes 365, which can includenew methods for callers to interact with the contact center, such asinstant messaging, Web form interactions during sessions, and the like,can be added at this time. Additional agent facing composite serviceapplications can also be created, which permit agent nodes 364 to accessthe contact center system. Initially, basic agent services 362 can becreated that cover functionality originally provided by a proprietarycontact center (310). Enhanced agent functions can then besystematically added. The agent node 364 can connect using standardtelephony connections (PSTN) and/or a standard data connection (WAN366). The new agent node 364 can use standard hardware and software,such as a SIP phone and Web browser with LOTUS LWM and BEEP. AJAX andHTTP or other communication techniques for exchanging information withthe agent node 364 can be used in place of LWM and BEEP. WEBSPHERE PSand agent portlets can be added and security can be enabled. IMSpresence server and watchers 363 can be added to detect available agentsand their skills and to monitor contact center interactions. In oneembodiment, collaboration components, which can be implemented using IBMWORKPLACE or other such components, can be added to the open contactcenter infrastructure.

FIG. 4 is a schematic diagram of a standards based contact center 400from an agent perspective that is implemented using WEBSPHERE enabledcomponents and associated tooling in accordance with an embodiment ofthe inventive arrangements disclosed herein. Center 400 represents oneparticular embodiment for system 200. Components illustrated for center400 are consistent with the concrete examples described for components220. It should be noted that center 400 utilizes WEBSPHERE enabledcomponents for illustrative purposes only and the scope of the inventionis not to be construed as limited in this regard. Other middlewaresolutions and open standards based solutions can be substituted andadapted to achieve approximately equivalent results.

An illustrative scenario for center 400 can show how the componentsinteract. In this scenario, a call can come in over a telephone to thecontact center 400 using a standard telephone, where the call istransferred to an agent connected to contact center components usingagent desktop 410. The agent can utilize any personal computer in anoperations center as the agent desktop 410 and is not trained to aparticular station. The agent can also remotely (i.e., external to anoperations center, such as through a home computer) connect to contactcenter components using a Web browser 412 and SIP based telephone 414.The agent can sign onto portal 424 via an agent desktop portlet 425. Forexample, the agent can enter a user id and password and hit a SUBMITbutton.

The desktop agent 410 portlet can call the WEBSPHERE PRESENCE SERVER(WPS) 426 with a publish/subscribe mechanism. An IP address of theagent's SIP phone 414, browser 412, BEEP address, and other informationincluding agent expertise and agent utilization can be conveyed to thepresence server 426. After login onto the system, a default screen canbe presented in the browser 412 that indicates that the agent is activeand available.

At this time, a call between a caller on a phone and the contact center400 can be active. In a running VXML application, the VE can prompt auser for input. The VE can interact with the WEBSPHERE VOICE SERVER todetermine user context information and a purpose of a call. The callerresponses can indicate that agent assistance is needed. For example, acaller can select a dialog option to speak with a live agent. The VXMLapplication can transfer the caller to an agent transfer servletco-located with the SIP proxy 416. Connector A (417), which continues inFIG. 5 illustrates this connection. Once the transfer is made, the agentcan receive the call using the SIP phone 414 and can receive callerspecific data via the browser 412.

Two key services used to allocate an agent to a caller are skills basedrouting and queuing. The presence server 426 allows a rules-basedservice in the assignment of registered agents based upon rich presenceinformation. The watchers 427 along with network dispatcher loadbalancing allow for rule based services in the queuing a distribution ofcall requests. The VE in conjunction with SIP information can providethe necessary information for the get agent 428 service.

It should be noted that middleware programming interfaces of contactcenter 400 allow for custom services to be created for contact centeroperations. These services can be provided by the middleware providerand/or by third party providers, which include traditional vendors ofcontact center solutions. The presence server 426 subscription functionpermits the dynamic registration of agents and agent capabilities.Further, the rich presence function of the server 426 can permitreal-time status metrics on agent operations. Generally, contact center400 encourages the interoperation of services provided by differentsources, which permits the contact center 400 to gracefully evolve andto use best practices and applications tailored to the specific needs ofthe business or organization for which the contact center 400 isimplemented.

Further, the arrangements of contact center 400 permit knowledgebrokering and independent agent services to be provided to a multitudeof business entities. That is, agents can operate as independentknowledge brokers, who sell their knowledge and services in a manneranalogous to how goods/merchandise are sold today. Thus, contact center400 can connect people with knowledge to sell, such as doctors, lawyers,and other professionals, to those willing to pay for this knowledge(i.e., callers or communicators contacting the call center). Businessescan utilize these independent contractors to handle difficult problemsthat dedicated staff is unable to handle, to handle overflow to ensurethat queue wait times remain under a configurable duration, and to offeran unprecedented level of contact center flexibility. The open standardsbased nature of center 400 permits the seamless integration ofindependent knowledge brokers and dedicated personnel in a fashiontransparent to callers. In short, higher quality contact center servicescan be provided at less costs using center 400 than is possible usingconventionally implemented contact centers.

FIG. 5 is a schematic diagram of a standards based contact center 500from a customer perspective that is implemented using WEBSPHERE enabledcomponents and associated tooling in accordance with an embodiment ofthe inventive arrangements disclosed herein. Center 500 represents oneparticular embodiment for system 200. Components illustrated for center500 are consistent with the concrete examples described for components220. It should be noted that center 500 utilizes WEBSPHERE enabledcomponents for illustrative purposes only and the scope of the inventionis not to be construed as limited in this regard. Other middlewaresolutions and open standards based solutions can be substituted andadapted to achieve approximately equivalent results.

An illustrative scenario for center 500 can show how the componentsinteract. In this scenario, a caller can use caller desktop 510 totelephone a contact center using a standard phone 514 and/or cancommunicate using a browser 512 (e.g., chat, text messaging, Web forms,or other form of interaction). The scenario can begin when the callerphones the contact center using phone 514. The call can come in over aPSTN connection and can be sent to a VoIP/media gateway 516. From there,the call can pass through a WAS SIP proxy as a SIP INVITE message, whichis forwarded to the VE 518. The VE 518 can inform the composite servicesmodel server 540 (i.e., over a HTTP communication) that a new callsession has started.

A session manager servlet 542 can call an IM presence server 544 todetermine capabilities (e.g., clients/modalities) of the caller desktop510 (assuming the desktop 510 has been authenticated) and to acquire IPaddress and protocol types (e.g., SIMPLE for IM, HTTP for browser 512)of the desktop 510. This obtained information can be stored in the modelserver (MS) 540 along with the VE 518 IP hostname for this call/session543. An associated model 545 can also be updated based upon previouslystored information (e.g., name and address information can be previouslylogged from a prior session).

The session manager servlet 542 can then set a voice channel as activein the IMS presence server 544. Activation indicates that the caller'sphone 514 is being utilized and is not just available. The presenceserver 544 can set a watcher 548 for an event package on a person. TheMS 540 can add a listener 550 for voice modality hooks to point to theVE 518 hostname for XML Configuration Access Protocol (XCAP) messages.Triggers can be established for all values for which the listener 550 islistening. All appropriate listening information and associated triggerscan be sent to the VE 518.

At this point, model 545, session 543, and presence server 544 settingshave been set to values associated with a live call. One of these valuescan include focus, which can be set to synchronize HTTP and VXML focus.The caller can now interact with the contact center 500, providingresponses to automated prompts. These responses can result in a transfer(illustrated by Connector A (517)) to a live agent, details for whichare provided in FIG. 4.

The present invention may be realized in hardware, software, or acombination of hardware and software. The present invention may berealized in a centralized fashion in one computer system or in adistributed fashion where different elements are spread across severalinterconnected computer systems. Any kind of computer system or otherapparatus adapted for carrying out the methods described herein issuited. A typical combination of hardware and software may be a generalpurpose computer system with a computer program that, when being loadedand executed, controls the computer system such that it carries out themethods described herein.

The present invention also may be embedded in a computer programproduct, which comprises all the features enabling the implementation ofthe methods described herein, and which when loaded in a computer systemis able to carry out these methods. Computer program in the presentcontext means any expression, in any language, code or notation, of aset of instructions intended to cause a system having an informationprocessing capability to perform a particular function either directlyor after either or both of the following: a) conversion to anotherlanguage, code or notation; b) reproduction in a different materialform.

This invention may be embodied in other forms without departing from thespirit or essential attributes thereof. Accordingly, reference should bemade to the following claims, rather than to the foregoingspecification, as indicating the scope of the invention.

What is claimed is:
 1. A system for an open contact center comprising:one or more processors; one or more computer memories storing aplurality of contact center components each comprising a set of programinstructions, wherein said contact center components conform to openstandard, wherein said contact center components when executed by theone or more processors intercommunicate with each other utilizing openstandards, said components together forming an open contact center, saidopen contact center providing automated interactive communications withcallers, providing queue management for callers waiting to communicatewith live agents, providing skills based routing for assigning liveagents to callers based upon skills of the live agents and skills neededby the callers, and providing tooling for provisioning and monitoringthe live agents, wherein each of the contact center components areservice oriented architecture (SOA) components, wherein the contactcenter components intercommunicate via an enterprise service bus (ESB),and wherein each of the contact center components execute independent ofother ones of the contact center components within a middleware solutionhaving Internet Protocol (IP) Multimedia Subsystem (IMS) capabilities.2. The system of claim 1, wherein said contact center components includeat least seven components selected from a set of components consistingof an agent desktop component, an agent authentication component, anagent monitoring component, an agent transfer component, an applicationintegration component, a call queuing component, a collaborationintegration component, a load balancing component, a reportingcomponent, a skills based routing component, and a supervisorconferencing component.
 3. The system of claim 1, wherein said contactcenter components include at least nine components selected from a setof components consisting of an agent desktop component, an agentauthentication component, an agent monitoring component, an agenttransfer component, an application integration component, a call queuingcomponent a collaboration integration component, a load balancingcomponent, a reporting component, a skills based routing component, anda supervisor conferencing component.
 4. The system of claim 1, whereinsaid contact center components include an agent desktop component, anagent authentication component, an agent monitoring component, an agenttransfer component, an application integration component, a call queuingcomponent, a collaboration integration component, a load balancingcomponent, a reporting component, a skills based routing component, anda supervisor conferencing component.
 5. The system of claim 1, whereinsaid contact center components include at least five components selectedfrom a set of components consisting of an agent desktop component, anagent authentication component, an agent monitoring component, an agenttransfer component, an application integration component, a call queuingcomponent, a collaboration integration component, a load balancingcomponent, a reporting component, a skills based routing component, anda supervisor conferencing component.
 6. The system of claim 1, furthercomprising: a set of vendor specific plug-ins each configured tocommunicate with a proprietary contact center component to permit theopen contact center to utilize capabilities provided by the proprietarycontact center component.
 7. The system of claim 6, wherein the contactcenter is configured to simultaneously utilize a plurality of differentvendor specific plug-ins, wherein the different vendor specific plug-inscorrespond to proprietary contact center components provided bydifferent vendors.
 8. The system of claim 6, further comprising: anagent desktop comprising an Hypertext Transfer Protocol (HTTP) browserand a Session Initiation Protocol (SIP) based phone each based upon openstandards, wherein the agent desktop is configured to operate as aninterface between the live agent and the open contact center.
 9. Thesystem of claim 6, further comprising: a composite services model serverconfigured to maintain session and model information for communicationsbetween the live agents and the callers.
 10. A system for an opencontact center comprising: an agent desktop comprising an HypertextTransfer Protocol (HTTP) browser and a Session Initiation Protocol (SIP)phone each based upon open standards, wherein the agent desktop isconfigured to permit an agent to handle call center communications; aportal server, comprising hardware and software stored in a memoryexecuting upon the hardware, configured to provide an agent portal,through which an agent utilizing the agent desktop communicates, saidagent portal including a plurality of agent portlets within whichcontact center information is presented; an application server,comprising hardware and software stored in a memory executing upon thehardware, executing contact center applications configured to receiveinput for the contact center applications from the agent portlets and topresent contact center output through the agent portlets; and a presenceserver, comprising hardware and software stored in a memory executingupon the hardware, configured to determine agent availability andconfigured to provide the application server with agent specificinformation including IP addresses for an agent's Hypertext TransferProtocol (HTTP) browser and Session Initiation Protocol (SIP) phone aswell as agent expertise information, wherein the portal server, theapplication server and the presence server conform to open standards.11. The system of claim 10, wherein the presence server, the applicationserver, and the portal server are together configured to permit incomingcalls to be handled by dedicated live agents as well as independentknowledge brokers each operating from one of the agent desktops withinwhich the agent or broker has logged, wherein caller transfers by thecontact center are directed towards either one of the dedicated liveagents or one of the independent knowledge brokers in a mannertransparent to callers.
 12. The system of claim 10, wherein the contactcenter provides automated interactive communications with callers,provides queue management for callers waiting to communicate with liveagents, provides skills based routing for assigning live agents tocallers based upon skills of the live agents and skills needed by thecallers, and provides tooling for provisioning and monitoring the liveagents.
 13. The system of claim 10, wherein the software and hardware ofthe contact center is based upon open standards, which permit thecontact center to operate without reliance on proprietary communicationprotocols, without reliance upon proprietary, vendor-specific contactcenter hardware, and without reliance upon vendor-specific contactcenter software.
 14. The system of claim 12, further comprising: a setof application server plug-ins, each configured to communicate with atleast one of a third party component and a proprietary contact centercomponent to permit the contact center to utilize capabilities providedby the component associated with the plug-in, whereby legacy proprietaryequipment is able to interoperate using vendor specific plug-ins withthe open standards based equipment of the contact center to permitgraceful migration from a legacy contact center equipment to thestandards based contact center, and whereby value added software bythird parties is able to extend functionality of the contact centerthrough use of plug-ins.
 15. The system of claim 10, wherein the portalserver, the application server, and the presence server are part of amiddleware solution having Internet Protocol (IP) Multimedia Subsystem(IMS) capabilities.
 16. The system of claim 10, wherein the portalserver, the application server, and the presence server are implementedwithin a service oriented architecture (SOA) infrastructure and whereinthe contact center applications are SOA applications.
 17. A call centersystem comprising: at least one contact node comprising at least one ofan Hypertext Transfer Protocol (HTTP) browser and a Public SwitchedTelephone Network (PSTN) telephone; least one agent node comprising anHypertext Transfer Protocol (HTTP) browser and a Session InitiationProtocol (SIP) phone; a middleware solution including a plurality ofcontact center components conforming to open standards thatintercommunicate utilizing open standards, said contact centercomponents together forming an open contact center, said open contactcenter providing automated interactive communications with callers,providing queue management for callers waiting to communicate with liveagents, providing skills based routing for assigning live agents tocallers based upon skills of the live agents and skills needed by thecallers, and providing tooling for provisioning and monitoring the liveagents, wherein said callers communicate with the contact centercomponents via one of the contact nodes and said live agents communicatewith the contact center components via one of the agent nodes, andwherein each contact node and each agent node communicate with themiddleware solution over a network using standard communicationprotocols.
 18. The call center system of claim 17, further comprising:at least one supervisor node comprising an Hypertext Transfer Protocol(HTTP) browser and a Session Initiation Protocol (SIP) phone eachconfigured to communicate with the middleware solution over the networkusing standard communication protocols, wherein the contact centercomponents comprise a supervisor conferencing component configured topermit an authorized supervisor using one of the supervisor nodes toconference into a real-time communication session between one of thecontact nodes and one of the agent nodes.
 19. The call center system ofclaim 17, wherein said contact center components include at least fivecomponents selected from a set of components consisting of an agentdesktop component, an agent authentication component, an agentmonitoring component, an agent transfer component, an applicationintegration component, a call queuing component, a collaborationintegration component, a load balancing component, a reportingcomponent, a skills based routing component, and a supervisorconferencing component.
 20. The call center system of claim 17, whereinsaid middleware solution further comprises: a portal server configuredto provide an agent portal, through which an agent utilizing the agentnode communicates, said agent portal including a plurality of agentportlets within which contact center information is presented; anapplication server executing contact center applications configured toreceive input for the contact center applications from the agentportlets and to present contact center output through the agentportlets; and a presence server configured to determine agentavailability and configured to provide the application server with agentspecific information including Internet Protocol (IP) addresses for anagent's Hypertext Transfer Protocol (HTTP) browser and SessionInitiation Protocol (SIP) phone as well as agent expertise information.